header{ 
/* código de cabecera */ 
	package practica3;
} 
options{ 
/* opciones comunes a toda la especificación */ 
}


class AnasintTeclado extends Parser;
options {
	importVocab = Analex;
}
{
	private boolean result = false;
	public boolean getResult() {return result;}
}
entrada : (asignacionVarDef|asignacion)* EOF;
asignacion : IDENT OPERADOR (NUMERO|TRUE|FALSE|PATH|CADENA) {result = true;};
asignacionVarDef : SET IDENT_SET OPERADOR (NUMERO|TRUE|FALSE|PATH|CADENA) (condicional|reglawhile|reglafor)? {result = true;};
condicional : IF PARENTESIS_A IDENT_SET PARENTESIS_C LLAVE_A (asignacion|asignacionVarDef)+ LLAVE_C {result = true;};
reglawhile: WHILE PARENTESIS_A IDENT_SET PARENTESIS_C LLAVE_A (asignacion|asignacionVarDef)+ LLAVE_C ;
reglafor: FOR PARENTESIS_A asignacion SEPARADOR IDENT(MAYOR|MENOR)NUMERO SEPARADOR IDENT((MAS)(MAS)|(MENOS)(MENOS)) PARENTESIS_C LLAVE_A (asignacion|asignacionVarDef)+ LLAVE_C ;